Automating Delegation in Class-Based Languages
نویسندگان
چکیده
Some designers of class-based object oriented languages choose not to support multiple inheritance. As a result, programmers often resort to ad hoc workarounds. The most common of these workarounds is delegation. Even delegation is tedious and error prone, however: We believe that language designers who choose against multiple inheritance should consider automating delegation in order to alleviate these problems. In this paper; we present Jamie, a language extension for Java that automates delegation. We also discuss the advantages and disadvantages of both delegation and automating it in a class-based programming language. Many of our observations are based on our experiences with implementing and using Jamie.
منابع مشابه
Automated Delegation is a Viable Alternative to Multiple Inheritance in Class Based Languages
Multiple inheritance is still a controversial feature in traditional object-oriented languages, as evidenced by its omission from such languages as Modula-3, Objective C and JavaTM. Nonetheless, users of such languages often complain about having to work around the absence of multiple inheritance. Automating delegation, in combination with a multiple subtyping mechanism, provides many of the sa...
متن کاملSuperimposed Delegation
Object composition a well-known programming technique for supporting dynamic adaptation in statically typed class-based object-oriented programming languages suffers from two non-trivial problems; the common-self problem and the object reference update problem. Recently, it has been shown that the common-self problem can be solved for object composition in statically typed class-based languages...
متن کاملDelegation as a Sharing Relation: Characterization and Interpretation
We introduce a new simple formalism in order to characterize sharing mechanisms in object-oriented languages. This formalism is based on the three notions of name sharing, property sharing and value sharing. We use it to identify the kind of sharing achieved by class-inheritance in class-based languages in a comparison with the one achieved by delegation in prototype-based languages. We also po...
متن کاملDelegation for Java: API or Language Extension?
The failed attempt of JavaSoft to incorporate an “Object Aggregation / Delegation API” into its newest JavaBeans model has demonstrated impressively the high necessity and also the notorious difficulty of incorporating delegation into typed class-based languages. Although JavaSoft's proposal has been withdrawn due to public criticism of its limitations, the general issue is still relevant: is i...
متن کاملImplementation of Dynamic Delegation in Strongly Typed Inheritance-Based Systems
In this paper we introduce an object-oriented model that integrates class-based inheritance and object-based, dynamic delegation in the framework of a static type system and we show that implementation techniques for strongly typed, inheritance-based languages can be adapted to handle dynamic delegation efficiently. Our model and implementation scheme show how today's "production programming" s...
متن کامل